package dominioDaSolucao;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Point;
import javax.swing.BorderFactory;
import javax.swing.JPanel;

public class Quadrado extends JPanel {

	private static final long serialVersionUID = 1L;
	protected Color color;
	protected int cor;
	protected boolean ocupado = false;
	protected Point referencia;
	protected String nomeJogador;

	public Quadrado(int x, int y) {
		setPreferredSize(new Dimension(40, 40));
		setBorder(BorderFactory.createLineBorder(Color.black, 1));
		setCor(Color.white);
		referencia = new Point(x, y);
	}

	public String getNomeJogador() {
		return nomeJogador;
	}

	public boolean isOcupado() {
		return this.ocupado;
	}

	public void setOcupado(boolean ocupado) {
		this.ocupado = ocupado;
	}

	public void setCor(Color cor) {
		this.color = cor;
		setBackground(cor);
	}
	
	public void defineCor(int numeroCor) {
		switch (numeroCor) {
		case 0:
			color = Color.YELLOW;
			cor = numeroCor;
			break;
		case 1:
			color = Color.BLUE;
			cor = numeroCor;
			break;
		case 2:
			color = Color.CYAN;
			cor = numeroCor;
			break;
		case 3:
			color = Color.GREEN;
			cor = numeroCor;
			break;
		case 4:
			color = Color.MAGENTA;
			cor = numeroCor;
			break;
		case 5:
			color = Color.ORANGE;
			cor = numeroCor;
			break;
		case 6:
			color = Color.PINK;
			cor = numeroCor;
			break;
		case 7:
			color = Color.RED;
			cor = numeroCor;
			break;
		case -1:
			color = Color.WHITE;
			cor = numeroCor;
			break;
		default:
			color = Color.GRAY;
			cor = numeroCor;
			break;
		}
		setBackground(color);
	}

	
	public int getCor(){
		return cor;
	}
	
	public int getXRef() {
		return (int) referencia.getX();
	}

	public int getYRef() {
		return (int) referencia.getY();
	}

	public void resetArea() {
  		nomeJogador = null;
		setCor(Color.WHITE);
		setOcupado(false);
		repaint();
		validate();
	}
	
	public void preencher(String nomeJogador, int numeroCor, boolean ocupado){
		this.nomeJogador = nomeJogador;
		defineCor(numeroCor);
		this.ocupado = ocupado;
		repaint();
		validate();
	}
}